package com.javatop.mapper.article;

import com.javatop.pojo.entity.Article;
import com.javatop.pojo.entity.Draft;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Service;

import java.util.List;

/*
  负责人：
  功能：三层架构文章类article接口中的mapper层
  */
@Mapper
public interface ArticleMapper {
    /*
   负责人：
   功能：删除，新增，修改文章的接口方法声明，具体的sql语言写在com/javatop/mapper/ArticleMapper.xml中
   参数：
   返回值：void
    */
    @Delete("delete from article where id=#{id}")
    void deleteByKey(Integer id);

    @Options(useGeneratedKeys = true,keyProperty = "id")
    @Insert("insert into article(title,body,author_id,status) values (#{title},#{body},#{authorId},#{status})")
    Article addByBody(Article article);

    @Update("update article set title=#{title},body=#{body},status=#{status},author_id=#{authorId} where id=#{id}")
    void modifyByBody(Article article);


    /**
     * @return List<Article>
     * @charge 王耀鹏
     */
       /*
    负责人：王耀鹏
    功能：
    参数：
    返回值：List<Article>

     */

//    @Select("select * from article")
    public List<Article> list();


    /*
 负责人：王耀鹏
 功能：
 参数：id
 返回值：Draft
  */

 //   @Select("select * from article where id =#{id}")
    public Draft searchContent(Integer id);

    /*
 负责人：王耀鹏
 功能：
 参数：content
 返回值：List<Article>
  */

  //  @Select("select * from article where body LIKE concat('%',#{content},'%')")
    public List<Article> content(String content);

    /**
     * @param authorName
     * @return List<Article>
     * @charge 王耀鹏
     */
       /*
    负责人：王耀鹏
    功能：
    参数：authorName
    返回值：List<Article>

     */
  //  @Select("select * from article where author_name LIKE concat('%',#{authorName},'%')")
    public List<Article> anthor(String authorName);

}
